Nous sommes enfin prêts à commencer à explorer l'API électronique.
Maintenant, vous avez peut-être remarqué que les trois prochaines sections du cours sont divisées en sections
individuelles de l'API.
Le processus principal, l'API, l'API Renderer et enfin, les modules API partagés.
Cette répartition des différents modules d'API est très importante pour essayer d'utiliser un module d'API pour le moteur de rendu.
Le processus ne fonctionnera pas dans le processus principal et vice versa, à l'exception d'une poignée de modules partagés qui, comme
son nom l'indique, fonctionneront dans les deux processus.
Electron le précise également dans sa documentation, et pour obtenir une meilleure répartition des modules appartenant
à quel processus, nous pouvons naviguer de la page d'accueil Electron à la documentation.
Référence API.
Où nous voyons chacun des modules d'électrons avec son processus désigné.
Le moteur de rendu principal ou principal et le moteur de rendu, également appelé module shed dans les trois prochaines sections de l'API, couvriront
principalement ces modules individuels d'une manière très spécifique, ce qui signifie que nous ne construirons pas nécessairement
quoi que ce soit, mais plutôt comment utiliser un module spécifique.
Le fait de couvrir les principes de base de l'API de cette manière nous permettra de créer des applications du monde
réel intégrant toutes les fonctionnalités électroniques dans les sections ultérieures du cours sans qu'il soit nécessaire de couvrir
d'abord les modules individuels.
Cela dit, commençons avec le premier et le plus important module de la bibliothèque
d'électrons, l'instance d'application.
Maintenant, nous avons déjà examiné certains des fonctionnements très basiques de l'application.
Instant et surtout, ce sera le seul module où nous ne créerons pas d'instance
du module pour l'utiliser.
Electron le fait pour nous lorsque l'application est lancée et comme l'indique la documentation électronique.
Ensuite, sur cette instance, nous contrôlons le cycle de vie des événements de nos applications, des choses comme la fermeture, l'application, la relance,
etc.
Le tout premier de ces événements étant l'événement prêt ici cette année.
Dès que notre instance d'application a été créée et est prête à être utilisée pour le moment, nous
transmettons simplement create window comme rappel d'événement, mais pour mieux démontrer notre changement en une fonction de rappel
anonyme.
La déconnexion est prête.
Après quoi, nous pouvons appeler la fenêtre de création pour créer la fenêtre de notre navigateur d'applications.
Je vais démarrer l'application avec ce processus principal automatique, recharger NPM, regarder les lancements de l'application, et si nous revenons dans le terminal, nous
voyons ce message de journal activé.
L'application de processus principale est prête.
Nous pouvons également effectuer une vérification manuelle sur l'application Instant pour voir si elle est prête cette fois-ci dans
la portée globale de ce script principal, sans attendre que la déconnexion soit prête, même au feu.
Vérification.
Prêt.
L'application en attente est prête.
Save, qui relance l'application, vérifie le terminal et là, avant que les applications ne se déclenchent vraiment, nous avons
vérifié et obtenu false.
Si, cependant, nous devions attendre quelques secondes avec cette vérification, je créerai un temps mort.
Enregistrement de ce même message.
Après deux secondes, enregistrez.
Vérifiez le terminal et cette fois, comme la vérification a été exécutée après l'initialisation de l'application, nous avons utilisé cette méthode de vérification
de votre application.
State peut être particulièrement utile lorsque vous travaillez avec des modules externes en dehors de ce script principal.
OK, donc ce sera toujours la première étape de notre cycle de vie, sachant quand il est prêt également, nous
pouvons contrôler la fin du cycle de vie des applications en écoutant cet événement avant la sortie.
Voyons un exemple.
Je vais me débarrasser de ce temps mort.
Ajoutez un nouvel auditeur sur l'instant de l'application.
Écoute avant de quitter.
Passer un rappel.
Dans lequel se déconnecter, c'est quitter.
Enregistrez les relances de l'application, et dans le terminal, nous n'avons que cette application est le message prêt de l'événement prêt,
mais quittez l'application avec un signal de commande ou un signal de contrôle sur Windows huit.
Retour au terminal.
Et là, nous l'avons.
L'application se ferme juste avant les monologues de Noad, une sortie propre, ce qui signifie que l'application a été interrompue gracieusement.
Je vais juste redémarrer ça.
Ainsi, sachant quand l'application est en cours de fermeture, nous pouvons aller plus loin et empêcher que cela se produise.
Electron nous fournit un objet événement comme premier argument de rappel, je l'appellerai E!
Et sur cet événement, object call prevent default, le nom de la méthode JavaScript standard pour empêcher le flux
d'événements par défaut.
Sauvegarde ça.
Il est venu au bon moment et rien, l'application ne se ferme tout simplement pas.
Revenez dans le terminal pour empêcher l'application de se fermer.
Peu importe le nombre de fois que j'essaye, chaque tentative est interrompue.
Cela peut sembler une fonctionnalité triviale, mais disons que vous souhaitez rapidement enregistrer le travail d'un
utilisateur avant de quitter.
Ce serait la solution parfaite.
Écoutez avant que Quirt arrête l'application de quitter directement les données de l'utilisateur dans un fichier ou une base de
données, puis quittez manuellement l'application comme l'utilisateur l'a prévu en appelant ne pas quitter.
OK, avant de regarder plus d'exemples, je tiens à souligner ces avis spécifiques à la plate-forme dans la
documentation.
Par exemple, cet événement de fichier ouvert est spécifique à Mac car c'est quelque chose que vous ne pouvez faire que sur un Mac lorsque
vous déposez un fichier sur l'icône de l'application, ce qui implique que vous souhaitez lancer l'application avec ce fichier, vous donnant le chemin
du fichier dans l'ordre le lire ou faire tout ce que vous souhaitez couvrira la détection de plate-forme plus tard dans
le cours.
Mais il est juste important d'être conscient des restrictions de la plate-forme tout au long de la documentation.
Je vais sauter ces derniers.
Ouais, d'autres événements multiplateformes.
Voyons ces événements de focus de fenêtre, le flou de la fenêtre du navigateur et le focus de la fenêtre du navigateur.
Je vais changer cela avant de transmettre Lessner au flou de la fenêtre du navigateur.
Déconnexion non focalisée, dupliquez cela pour le focus de la fenêtre du navigateur.
Centrée sur l'application, sûre, l'application se relance, ce qui la met au point, donc le déclenchement de l'événement de mise au point de la fenêtre du
navigateur et maintenant avant de passer au terminal pour voir ce message de journal, a remarqué que, ce
faisant, l'application ne sera pas focalisée, l'application ou la brouillera, et attendez ainsi un deuxième message de journal du commutateur
d'événement de flou de fenêtre de navigateur.
Et là, la fenêtre du navigateur des applications était focalisée immédiatement après l'initialisation de l'application, puis non
focalisée lorsque nous sommes retournés au terminal pour nous concentrer non focalisés et deux autres journaux comme avant ces événements nous permettant
de savoir quand un utilisateur s'éloigne de notre application ou lorsqu'un utilisateur clique dessus, comme si potentiellement utile
pour afficher un message important.
Dès que l'utilisateur s'engage avec l'application ou met à jour certaines données, etc.
Nous avons beaucoup de ces événements couvrant à peu près tout ce qui se passe avec l'application, mais plus
bas, nous pouvons également déclencher manuellement certains de ces événements ou actions sur l'application.
Oui, les méthodes d'instance d'application que j'ai déjà mentionnées.Application ne se ferme pas dans le contexte d'empêcher une application de se
fermer puis de se fermer manuellement.
Alors essayons ça.
Débarrassez-vous du focus de la fenêtre du navigateur.
Je réutiliserai cet événement de flou.
Fixez un temps mort.
Appel, devis.
Après, disons, trois secondes, nous pourrions en fait écrire cela un peu plus gentiment, en passant un temps
assez fixe à sortir là-bas.
Ainsi, dès que l'application perd le focus, attendez trois secondes, puis enregistrez les lancements de l'application en focus.
Alors cliquez hors de cette fenêtre principale et trois secondes plus tard, le nœud signale une sortie propre comme auparavant.
Nous sommes également des variantes de quitte, comme le redémarrage de l'application ou même le fait
de forcer une sortie immédiate au lieu d'une sortie gracieuse, plus bas, nous voyons que la méthode israélienne que nous avons
utilisée précédemment pour ramener manuellement l'application au point et certaines méthodes spécifiques d'affichage et de masquage, un moyen d'obtenir le chemin complet de
l'application sur la machine de l'utilisateur et, très important, la méthode get path.
Ce sera notre choix pour savoir comment interagir avec le système de fichiers de l'utilisateur, en nous fournissant le chemin
vers l'un de ces emplacements de système de fichiers courants.
Voyons un couple.
Je vais me débarrasser de cet événement Blu ray.
Et dans le rappel prêt.
Déconnectez-vous, dot get path.
Pour le bureau, un autre pour la musique.
Le répertoire temporaire attribué pour les ressources temporaires que le système d'exploitation peut supprimer à volonté et le répertoire
de données utilisateur tous importants, ce chemin renvoyé année doit toujours être l'emplacement par défaut pour
stocker les données associées à votre application.
Cela peut être n'importe quoi à partir de fichiers, de données JSON ou même d'un simple skua comme une base de données.
Assurez-vous simplement de stocker des ressources ici, car cela vous garantira des chemins cohérents sans
rencontrer de problèmes d'autorisation ou d'emplacements qui n'existent pas.
Sans oublier qu'électron fournira automatiquement le chemin correct pour le système d'exploitation de l'utilisateur.
Sauvegarde ça.
Je vais juste redémarrer ça.
Et chacun de ces emplacements est unique à mon application, le chemin des données utilisateur étant un répertoire Mac commun spécialement
créé pour mon application, encore une fois, une méthode importante à connaître et à utiliser.
Bien sûr, comme pour l'événement, nous avons beaucoup plus de méthodes, trop nombreuses pour être couvertes dans
cette leçon, mais elles sont toutes très bien documentées, obtenant ou définissant le nom de votre application, obtenant la version
actuelle, etc.
Vous devez maintenant bien comprendre à quoi sert l'instance d'application et comment l'utiliser à son
plein potentiel.
Dans la prochaine leçon, nous verrons sans doute la deuxième partie la plus importante de l'API de processus principale, le module de
fenêtre du navigateur.